package com.lishem.carl._04string;

import java.util.Scanner;

/**
 * https://kamacoder.com/problempage.php?pid=1065
 * <p>
 * 字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。
 * <p>
 * 给定一个字符串s和一个正整数k，请编写一个函数，将字符串中的后面k个字符移到字符串的前面，实现字符串的右旋转操作。
 * <p>
 * 例如，对于输入字符串 "abcdefg" 和整数 2，函数应该将其转换为 "fgabcde"。
 * <p>
 * 输入示例
 * 2
 * abcdefg
 * 输出示例
 * fgabcde
 */
public class _5KaMaCode55_右旋字符串 {


    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        String s = sc.next();
        String res = reverseString(s, k);
        System.out.println(res);
    }

    private static String reverseString(String s, int k) {
        char[] chars = s.toCharArray();
        reverse(chars,0,s.length()-k-1);
        reverse(chars,s.length()-k,s.length()-1);
        reverse(chars,0,s.length()-1);
        return new String(chars);
    }

    private static void reverse(char[] chars, int left, int right) {
        while (left < right) {
            char c = chars[left];
            chars[left++] = chars[right];
            chars[right--] = c;
        }
    }

    public static void main1(String[] args) {
        System.out.println(reverseString("abcdefg", 2));
    }
}
